/OpenDoc/Introduction to Component SW/Images/SharedImages/MainHeader.gif)
Overview
Most programs used on today's Macintosh computers are monolithic applications.
The good news is that developers know how to create applications. The bad
news is that large applications are difficult to design, code, test, and
maintain. Furthermore, end users are having problems because their applications
come with an inflexible set of features. They cannot add functionality or
replace certain functions with better choices.
Now that component technologies
like OpenDoc and SOM
are available, developers have choices. You can still build monolithic applications
if you want to. But there are many advantages to creating customer solutions
from a suite of components. Components allow you to decompose a large job
into a set of small programs, each of which can be designed, coded, and
tested separately. Components can also benefit the user, allowing the user
to plug in new functionality - often without the developer being involved.
The user can sometimes also replace functionality be removing one component
and adding in a different one.
This discussion is organized into seven major sections, as follows:
Hands-On tells you
where and how to get sample OpenDoc parts and other components, so that
you can try things on your own Macintosh - without having to get out your
favorite C++ compiler and write any code.
Technologies provides a technical
overview of SOM, OpenDoc, containers, linking, and other component technologies.
Many of the advanced component technologies involve support for part-to-part
communication, which allow separate OpenDoc parts to work together.
Reusable Components lists various sources
for components that other developers have already written. Some of these
are available free from Apple, while others can be purchased or licensed
from third-party developers. An important rule for component software development
is to avoid work at all costs :-) , so you should only create new components
if you have no other choice. Why? Simply because the way to save large sums
of money on design, coding, testing, and years of maintenance is to let
others people do that work. You should spend your time writing code that
encapsulates your expertise in some problem domain. If you need components
that are not in your area of specialization, try to find existing ones rather
than getting sidetracked creating new ones.
Development Tools describes many of the
common tools used for component software development on the Macintosh. This
section also provides some guidance to help you choose which development
tools, libraries, and frameworks are best suited for each type of job.
Case Studies provides an number of
examples of how certain types of monolithic applications could be redesigned
as a set of components. Some of these case studies are based on real components
that you can download and try out on your own. In some cases, the source
code to the components is also available.
Resources lists training, books, and
online sources for more detailed information.
Glossary defines terms used throughout
this course. You will not need to read this separately, but you may want
to follow links to definitions are you read the other sections.
/OpenDoc/Introduction to Component SW/Images/SharedImages/HRule100.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Overview.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/HandsOn.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Technologies.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Components.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Tools.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/CaseStudies.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Resources.gif)
/OpenDoc/Introduction to Component SW/Images/Buttons/Glossary.gif)
Home